65.9K
CodeProject 正在变化。 阅读更多。
Home

一个 Matlab - Octave 表单生成器

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2021年8月30日

CPOL

3分钟阅读

viewsIcon

5909

downloadIcon

138

本文是关于 Matlab - Octave 脚本的,用于轻松创建具有最有用控件的表单(文本字段、列表、单选按钮、复选框、滑块等)。

背景

该代码已在 Matlab 和 Octave 的一个通用子集中开发,旨在供使用这些语言进行开发的程序员使用。

引言

本文不是用户手册(已附带),而是旨在让您了解该产品的各项功能以及它如何使用户摆脱对表单几何形状的管理。

Using the Code

表单构建器包含在 formGen.m 脚本中,该脚本包含 formGen 类。另外两个脚本 fg_HandleButtons.mfg_HandleEvents.m 包含处理按钮和事件的函数。

为了尝试该软件包,在附加文件中有一个脚本 sandBox.m,它通过生成一些表单来展示其功能。

通过调用 formGen 类的 fGen 函数来生成表单

objForm=formGen; 
% here we can modify objects properties 
fGen(objForm, params, @handleAnswer) 
% or directly: 
formGen.fGen(formGen, params, @handleAnswer)

其中 fGen 参数为

  • 对象本身
  • 表单字段列表
  • 必须在表单关闭时调用的函数

对象本身

Matlab - Octave 中实现的对象结构需要此参数。

表单字段列表

小部件(或控件)列表是生成表单的基础;每个控件都是一组用逗号分隔的属性:控件 typename、必须公开的 labellengthdefault valueextra 属性。控件之间用分号分隔。

除了控件之外,我们还可以有一些具有不同语义的其他信息(伪类型)。

生成的表单可以包含

  • 按钮:确定取消重置 按钮会自动添加到表单
  • 文本:字符文本(可能为多行)、数值文本(整数、浮点数和虚数)
  • 列表:列表可以与文本字段关联,以模拟从列表本身中选择的列表
  • 单选按钮
  • 复选框
  • 滑块

label 显示在控件的左侧,对于按钮,则是标题。

数字控件的 default 值可以是两个数字范围内的随机值,对于虚数

  • 一个数字:圆心 (0,0),半径为此值的圆内的随机值
  • 两个数字:第一个是实部,第二个是虚部
  • 三个数字:圆心为(第二个和第三个值),半径为第一个值的圆内的随机值

extra 字段的内容取决于控件的类型,例如滑块的额外字段可以是间隔;对于文本,可以是工具提示

formGen 不仅仅是一组粗糙的控件,而且是一种管理数据的机制:数字字段会进行检查,可以插入按钮来调用用户函数,并且通过插入到控件列表中的一些信息(伪类型),可以管理一些外观或与用户交互(event 伪类型)。

  • form 伪类型允许配置表单背景、位置和模态。
  • event 将函数附加到控件。
["FORM,,Numbers example,cyan,modal,,100,100;"...
            "N,Iteration,Iterations number,,97 107;"...
            "NS,Temperature,,,-50 50;"...
            "B,bSqrt,Sqrt,40,Sqrt,Imaginary,Square root;"...
            "I,Imaginary,Imaginary number,,3;"...
            "C,,Error comment,,,left,error;"];

访问表单数据

表单关闭时,该函数(第三个参数)接收一个 structure 中的数据,该数据可通过字段 name 访问。 数据对于数字字段或幻灯片是数字,否则是字符串。

关注点

该语言是为了数学而生的,因此它处理 string 变量,不像其他语言那么容易;GUI 对事件的最小支持并且不支持透明度,但另一方面,函数 guidata 和控件的 userdata 参数(实际上是一个扩展的标签)方便了对输入数据的管理和控制。

历史

  • 2021 年 8 月 30 日:初始版本
© . All rights reserved.